package com.delivery.deliverysystem.pojo.DO;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.Size;

/**
 * 用户管理表
 * @TableName user
 */
@TableName(value ="user")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class User implements Serializable {
    /**
     * 用户id
     */
    @TableId(value = "user_id", type = IdType.AUTO)
    @ApiModelProperty("用户id")
    private Integer userId;

    /**
     * 用户代码
     */
    @ApiModelProperty("用户代码")
    private String userCode;
    /**
     * 用户名称
     */
    @ApiModelProperty("用户名称")
    private String username;
    /**
     * 密码
     */
    @ApiModelProperty("密码")
    private String password;
    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String userRemark;
    /**
     * 帐户已停用（0未选中，1已选中）
     */
    @ApiModelProperty("帐户已停用（0未选中，1已选中）")
    private Integer disabled;
    /**
     * 超级用户(无需分配用户权限)（0未选中，1已选中）
     */
    @ApiModelProperty("超级用户(无需分配用户权限)（0未选中，1已选中）")
    private Integer superUser;
    /**
     * 只允许查看自己的单（0未选中，1已选中）
     */
    @ApiModelProperty("只允许查看自己的单（0未选中，1已选中）")
    private Integer onlyReadList;
    /**
     * 只允许修改自己的单（0未选中，1已选中）
     */
    @ApiModelProperty("只允许修改自己的单（0未选中，1已选中）")
    private Integer onlyUpdateList;
    /**
     * 只允许查看自己的客户（0未选中，1已选中）
     */
    @ApiModelProperty("只允许查看自己的客户（0未选中，1已选中）")
    private Integer onlyReadClient;
    /**
     * 用户自定义字段名称
     */
    @ApiModelProperty("用户自定义字段名称")
    private String updateColumn;
    /**
     * 开单界面字段显示
     */
    @ApiModelProperty("开单界面字段显示")
    private String createDeliveryDisplay;
    /**
     * 产品资料字段显示
     */
    @ApiModelProperty("产品资料字段显示")
    private String productDisplay;

    @ApiModelProperty("用户所在的公司id")
    private Integer companyId;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}